
#include "DigitalOut.h"
//#include "Input.h"
#include "Control.h"
#include "EEPROM.h"
#include "Alarm.h"
#include "Timer.h"
#include "DewControl.h"
#include "JD_InOut.h"
#include "IDriver.h"
#include "ModbusRegister.h"
#include "MultipleAlarmClocks.h"
static u8 DewStage;

void DewCycleControl(u8 mode)
{
	switch(DewStage)
	{
		case 0:
//			Controller.DewTimerDelay = GetJDParamValue(HREG_DEW_WORK_TIME) *60;
//		  if(Controller.DewTimerDelay == 0)
//		  {
//		   	Controller.DewTimerDelay = TIMER_NOT_USED;
//		  }
//			else
//			{
//				DewStage = 1;
//				if(mode == 1)
//				{
//				  SetDewOn();
//				}
//				else
//				{
//					SetDew12VOn();		
//				}
//			}		
		 if(0 == GetJDParamValue(HREG_DEW_WORK_TIME) *60)
		  {
           if(mode == 1)
			    	{
				      SetDewOff();
				    }
			    	else
			    	{
				    	SetDew12VOff();		
			    	}
		  }
			else
			{
				DewStage = 1;
					 
				if(mode == 1)
				{
				  SetDewOn();
				}
				else
				{
					SetDew12VOn();		
				}
			}
			break;
		case 1:
//			if(Controller.DewTimerDelay == TIMER_NOT_USED)
//			{	
//        Controller.DewTimerDelay = GetJDParamValue(HREG_DEW_STOP_TIME)*60;	
//			  if(Controller.DewTimerDelay == 0)
//		    {
//		     	Controller.DewTimerDelay = TIMER_NOT_USED;
//		    }	
//        else
//			  {
//				  DewStage = 2;
//			  if(mode == 1)
//				{
//				  SetDewOff();
//				}
//				else
//				{
//					SetDew12VOff();		
//				}
//			  }				
//			}	

			   if(Controller.DewTimerDelay >= GetJDParamValue(HREG_DEW_WORK_TIME) *60)
				 {
					  DewStage = 2;
					  Controller.DewTimerDelay = 0;
					 
				 }


			break;
		case 2:
			if(0 == GetJDParamValue(HREG_DEW_STOP_TIME) *60)
			{
					if(mode == 1)
				{
				  SetDewOn();
				}
				else
				{
					SetDew12VOn();		
				}
			}
			else
			{
				    if(mode == 1)
			    	{
				      SetDewOff();
				    }
			    	else
			    	{
				    	SetDew12VOff();		
			    	}
						 DewStage = 3;
			}
	
		
			break;
			
		case 3:
			
		    if(Controller.DewTimerDelay >= GetJDParamValue(HREG_DEW_STOP_TIME) *60)
			{	
        DewStage = 0;
				Controller.DewTimerDelay = 0;
			}	
			break;
		
		default:
			DewStage = 0;
		break;		
	}
}





/*
 * Function Name:   DewControl
 * Description:  
 * Return Value: 
 * Parameter:  
 * Note:
 *Author:
*/
void JD_DewControl()
{
	u8 DEWControlMode = GetJDParamValue(HREG_DEW_MODE);  

		if(0 == DEWControlMode)               
		{
				 SetDewOn();			
         SetDew12VOff();		
         DewStage=0;		
		}
		else if(1 == DEWControlMode)                       
		{
		  DewCycleControl(DEWControlMode);
      SetDew12VOff();
		}
		else if(2 == DEWControlMode)                       
		{
				SetDewOn();
        DewCycleControl(DEWControlMode);
		}
		else                
		{
			 if(Controller.ManualDew == 1)
			 {
		     SetDewOn();
				 SetDew12VOn();
			 }
			 else
			 {
				 SetDewOff();
				 SetDew12VOff();
				 
			 }
			  DewStage=0;	
		}

  
}
